home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / qwhite10.arc / EXCEPT13.TEC < prev    next >
Text File  |  1990-08-16  |  4KB  |  72 lines

  1. ID:13 Discussion of Exception #13
  2. Quarterdeck Technical Note
  3. by Bob Perry
  4.  
  5. What is "Exception 13?"                              
  6. What can be done to prevent "Exception 13's?"
  7.  
  8.     Exceptions are unusual or invalid conditions associated with 
  9. the execution of a particular instruction by the 80386 processor.  The 
  10. 80386 recognizes several different classes of exceptions, and assigns 
  11. a different vector number to each class. The DESQview-386 memory 
  12. manager, QEMM-386, has been designed to capture these 80386 exception 
  13. vectors and display them directly to the user.
  14.  
  15.     Exception 13 is the "General Protection Fault" error. Any 
  16. privileged instruction or any instruction that references memory can 
  17. trigger an Exception 13. 
  18.  
  19.     In the first case, privileged instructions, the Exception 13 
  20. could indicate that a program has violated the protected mode of the 
  21. 80386 by executing a privileged instruction or I/O reference. Thus, 
  22. when the prompt, "Terminate, Reboot or Continue?" is issued, the 
  23. "Continue" option directs the 80386 to reorder the ranking of 
  24. priviliged instructions and the program should continue to execute.
  25.  
  26.     It is the second case, instructions that reference memory, 
  27. that are far more common to DESQview 386 (and QEMM-386) users.  Here 
  28. the exception can indicate that an application has a bug.  It has over-
  29. written its memory partition, and may in fact be running wild, writing 
  30. code all over the place.  This situation can occur with some programs 
  31. that were written for use on the 8088 processor and may not be useable 
  32. in the 80386's virtual 8086 mode. A few other programs may not be 
  33. compatible with QEMM-386. All this adds up to mean that when 
  34. "Terminate, Reboot or Continue" is displayed, the user can only 
  35. "Terminate."
  36.  
  37.     For those users who are more technically oriented, this over-
  38. writing of the memory partition generally means that a word or a 
  39. double word value of code has been written to the last byte of a 
  40. segment.  The problem or "bug" in the application program has to do 
  41. with wrapping the value to the next segment of memory.
  42.  
  43.     What can the user do to prevent Exception 13's?   The DESQview 
  44. 386 user can try two things:  First, run Change Program and try to 
  45. allocate more memory to the application.  Second, the user can try to 
  46. increase the Protection Level to 3, which will not alleviate the 
  47. source of the Exception 13, but may allow the application to pass more 
  48. descriptive error messages through to the user.  
  49.  
  50.     When Exception 13's are obtained outside of DESQview they are 
  51. either caused by applications written for the 80386 protected mode or 
  52. they are not.  If the faulting application is written for protected 
  53. mode of the 80386, it is likely that this program has no VCPI (Virtual 
  54. Control Program Interface).  Since QEMM-386 is a virtual 8086 program, 
  55. such faulting applications cannot be run under QEMM without VCPI.  The 
  56. user has no choice but to reboot without QEMM, and contact the 
  57. developer of the faulting application for VCPI support.
  58.  
  59.     If the faulting application was not written for the protected 
  60. mode of the '386, the QEMM user is probably using the RAM parameter 
  61. (which is necessary to LOADHI drivers and TSR's). In this case the 
  62. faulting program may be rinning in an area of high RAM in which it 
  63. never thought it would be run.  To correct this problem, the user may 
  64. opt to RAM only specific areas of memory, as described on page 6 of 
  65. the QEMM manual, rather than issue a RAM for all mappable areas.  
  66. Another possible solution to such memory conflicts might be to use the 
  67. EXCLUDE parameter (on page 5 of the QEMM manual) for all known ROM's 
  68. being mapped into RAM.
  69.  
  70.         Copyright (C) 1990 by Quarterdeck Office Systems
  71.              * * *   E N D   O F   F I L E    * * * 
  72.